package com.simple.middle.test.redis.statistic.service;

import com.simple.middle.test.redis.statistic.model.data.UserSignTotalAndDetail;

import java.time.LocalDate;

/**
 * 项目: pagination
 *
 * 功能描述: 用户统计纬度
 *
 * @author: WuChengXing
 *
 * @create: 2023-05-24 14:38
 **/
public interface UserSignStatisticService {

    /**
     * 用户签到
     *
     * @param userId
     * @return Boolean
     */
    Boolean doSign(String userId);

    /**
     * 校验用户是否签到了
     *
     * @param userId
     * @return
     */
    boolean checkSign(String userId);

    /**
     * 补签
     *
     * @param userId
     * @param localDate
     * @return
     */
    boolean reSign(String userId, LocalDate localDate);

    /**
     * 根据时间来获取用户签到信息
     *
     * @param userId
     * @param startTime
     * @param endTime
     * @return
     */
    UserSignTotalAndDetail getSignByDate(String userId, LocalDate startTime, LocalDate endTime);

}
